const mongoose = require('mongoose');

// 数据库连接配置
const connectDB = async () => {
    try {
        // 使用工作的数据库连接
        const conn = await mongoose.connect('mongodb+srv://qq455177696130:kobe248160@cluster0.ge3zboi.mongodb.net/wang', {
            maxPoolSize: 10, // 维持最多10个连接
            serverSelectionTimeoutMS: 10000, // 保持尝试选择服务器10秒
            socketTimeoutMS: 45000, // 45秒后关闭套接字
        });
        
        console.log(`✅ 数据库连接成功: ${conn.connection.host}`);
    } catch (error) {
        console.error('❌ 数据库连接失败:', error.message);
        // 重试连接
        console.log('🔄 5秒后重试连接...');
        setTimeout(connectDB, 5000);
    }
};

// 监听连接事件
mongoose.connection.on('connected', () => {
    console.log('🟢 Mongoose 连接已建立');
});

mongoose.connection.on('error', (err) => {
    console.error('🔴 Mongoose 连接错误:', err);
});

mongoose.connection.on('disconnected', () => {
    console.log('🟡 Mongoose 连接已断开');
});

// 应用终止时关闭数据库连接
process.on('SIGINT', async () => {
    await mongoose.connection.close();
    console.log('🔹 数据库连接已关闭');
    process.exit(0);
});

// 初始化连接
connectDB();

module.exports = mongoose;